import axios from 'axios';
//引入进度条插件
import nprogress from 'nprogress';
//引入进度条样式
import "nprogress/nprogress.css";
import store from '@/store'
//自己封装一个简易的axios拿来用
const requests = axios.create({
    timeout: 5000,
    //!!使用了配置代理服务器后，代理的服务器 http://localhost:8080 和自己的网站地址一样  可以不用写 ，直接写请求的后面具体内容
    // baseURL: "http://localhost:8080/api",
    baseURL: "/api",

})
//使用了请求拦截器  每进行一次发请求前 就会进入这个方法里面进行判断
requests.interceptors.request.use((config) => {

    //发送请求头 游客身份的uuid

    if (store.state.detail.uuid_token) {
        // 这里的store.state.detail.uuid_token 是一直存在的，所以每次发请求都会执行这儿的代码
        //!!!这里请求头里面带userTempId参数是和后端商量好的（很关键！！） 只有这个参数有值存在 ，在购物车组件里面获得数据打印的data 才不为空
        config.headers.userTempId = store.state.detail.uuid_token
        console.log("uuid_token是存在的")
    }
    //用于测试store包含的信息有哪些
    // console.log(store, 111)
    //!!发送请求头 用户携带的token
    if (store.state.user.token) {
        config.headers.token = store.state.user.token
    }
    // console.log(store)
    nprogress.start();
    return config;
})
//使用了响应拦截器
requests.interceptors.response.use(
    (res) => {
        nprogress.done();
        return res.data;
    },
    (error) => {

        return Promise.reject(new Error("faile"))
    }
)
export default requests;